define(function (require,exports,module) {
    var myPub = require('./public');
    var oWindow = $(window);
    var resizeTimer = null;
    var oWrap = $('.wrap');                     // 页面内容区域
    var oGoodsMall = $('.js_goods_gMall');      // 内容区域撑起的高度
    var oContain = $('.js_contain');            // 内容部分
    var oGoodsListUl = $('.js_goodsListUl');    // 产品列表分例
    var oLoadingBtn = $('.js_loading');         // 加载中
    var oLoadingNull = $('.js_loadNull');       // 没有更多了
    var oErrPage = $('.js_errPage');            // 没有数据的页面
    var oGoodsListBox = $('.js_goodsList');     // 有商品列表
    var oScrollBox = $('.js_scrollBox');        // 滑动部分
    var oSideBox = $('.js_sideBox');            // 侧边按钮
    var oGoTop = $('.js_goTop');                // 返回顶部按钮
    var oCouponId = $("#nowCouponId").val();          //当前订单的id
    var lazLoading = new myPub.lazLoadingImg();
    var goodsDateUrl = BASE_URL+'/coupon/useCouponSuitable';  // 数据

    // 回到顶部
    oGoTop.on('click',function (e) {
        oScrollBox.stop().animate({scrollTop: '0px'}, 250,function() {});
        oSideBox.hide().stop().animate({'right': '-3.5rem'}, 300);
        e.stopPropagation();
        myPub.HamstopPropaga();
    });

    module.exports = {
        init: function() {
            indexSetInit.Init();
            goodsSetInit.AjaxData(goodsSetInit.start, goodsSetInit.limit, goodsSetInit.pagearr, oCouponId);
            goodsSetInit.ScrollPage();

            // oScrollBox.scrollTop(goodsSetInit.scrollHeight);
            // 页面尺寸修改
            oWindow.on('resize',function() {
                if (resizeTimer) {
                    clearTimeout(resizeTimer)
                }
                resizeTimer = setTimeout(function(){

                    indexSetInit.Init();
                }, 400);

            });
        }
    };

    var indexSetInit = {
        Init: function () {
            var _this = this;
            var pagearrNum = sessionStorage.getItem("sellerCoupon_pagearr");
            var scrollHeightNum = sessionStorage.getItem("sellerCoupon_pageScroll");
            oContain.css({
                'box-sizing': 'border-box'
            });
            myPub.JudgeAppHref($('.js_reHome'));
            myPub.JudgeAppHref(oGoodsListUl.find('a'));

            oSideBox.stop().animate({'right': '-3.5rem'}, 300);

            if(pagearrNum != null){
                goodsSetInit.pagearr = parseInt(pagearrNum)
            }
            if(scrollHeightNum != null){
                goodsSetInit.scrollHeight = parseInt(scrollHeightNum)
            }
        }
    };

    var goodsSetInit = {
        limit: 10,                      // 每次加载多少数据
        getData: [],                    // 数据记录
        pagearr: 1,                     // 当前页码
        pageCout: 0,                    // 页码总数
        prePageSCroll:'',               // 记录当前页面高度
        start:0,                        // 开始数据
        end: 0,                         // 结束数据
        time_Scroll:null,               // 计时器
        bLoadOff: true,                 // 加载开关
        scrollHeight: 0,                // 滚动高度
        // 商品列表 数据拼接
        goodsListHtml : function (data, fn) {
            var _this = this;
            var shtml = '';
            for (var i=0; i<data.length; i++) {
                shtml +=
                    '<li>' +
                    '   <a class="BoxSelf" _href="'+data[i].goodsSn+'">'+
                    '       <figure>'+
                    '           <img src="'+httpImageUrl+data[i].showImage+smallImgArg200+'" alt="" class=""/>'+
                    '       </figure>'+
                    '       <aside class="priceArea VBox Bflex1">'+
                    '           <div class="Bflex1 priceArea_name">'+
                    '               <h4>' ;
                if(data[i].goodsLabels && data[i].goodsLabels != ""){
                    shtml += '<i class="promotionHotIcon">'+ data[i].goodsLabel +'</i>';
                }
                shtml +=  data[i].name + '</h4>'+
                    '               <p class="smallFont_tip">'+ data[i].title +'</p>'+
                    '           </div>'+
                    '           <div class="priceArea_price">'+
                    '               <p class="HBox priceAreaBox">'+
                    '                   <span class="goodsPrice">￥' + data[i].salePrice + '</span>'+
                    '                   <span class="goodsWeight Bflex1" style="margin-top: 0.3rem;">'+data[i].productName+'/一个</span>'+
                    '               </p>'+
                    '           </div>'+
                    '       </aside>'+
                    '   </a>';
                if(data[i].label && data[i].label != ''){
                    shtml += '<p class="promotionSale horpromotionSale">';
                    for(var j=0;j<data[i].labels.length;j++){
                        shtml += '<i>'+data[i].labels[j]+'</i>'
                    }
                    shtml += '</p>';
                }
                // '    <p class="addCar js_addCar" pid="'+data[i].productId+'"><em class="icon-shopcar_small"></em></p>'+
                shtml += '</li>';
            }

            var oShtml = $(shtml);
            oGoodsListBox.find('.js_goodsListUl').append(oShtml);

            // 高度检测
           /* if(oGoodsMall.height() < oWindow.height()){
                //console.log('不够高度');
                _this.start = _this.limit*_this.pagearr;
                _this.pagearr++;
                _this.AjaxData(_this.start, _this.limit, 1, oCouponId);
            }*/

            lazLoading.DestroyLazLoadingImg();
            lazLoading.AddLazLoadingImg(oScrollBox[0]);
            myPub.JudgeAppHref($('.js_reHome'));
            myPub.JudgeAppHref(oGoodsListUl.find('a'));
            oScrollBox.stop().animate({scrollTop: _this.scrollHeight+'px'}, 250,function() {});
            if(fn)fn();
        },

        // 请求数据
        AjaxData: function (start,limit, page, oCouponId,fn) {
            var _this = this;
            var limitNum = _this.limit*page;
            G_JSON_POST(goodsDateUrl,{
                "start":_this.start,
                "limit":limitNum,
                "couponId":oCouponId
            },function (data) {

                //存储数据
                if( data.status == "success") {
                    _this.getData = data.goods;
                  // console.log(_this.getData);
                    // 对应数据为0 return
                    if(_this.getData.length == 0 && _this.pagearr < 2) {
                        _this.bLoadOff = false;
                        oGoodsListBox.hide();
                        oErrPage.show();
                        return
                    }
                    if( _this.pagearr >= 1) {
                        if(_this.getData.length == 0){
                            oLoadingNull.show();
                            oLoadingBtn.hide();
                            _this.bLoadOff = false;
                            return
                        }
                    }
                    //拼接页面
                    _this.goodsListHtml(_this.getData);
                    oLoadingBtn.show();

                    if(_this.getData.length <  limitNum) {
                        oLoadingBtn.hide();
                        oLoadingNull.show();
                        _this.bLoadOff = false;
                    }

                    data = null;
                    if(fn)fn();
                }else {
                    oGoodsListBox.hide();
                    oErrPage.show();
                    return false;
                }
            }, function () {
                // start
            }, function () {
                // end
            });
        },

        // 滚动加载
        ScrollPage : function () {
            var _this = this;
            var minScrHeight = 200;
            oScrollBox.on('scroll' , function () {

                var afterScroll = $(this).scrollTop();
                _this.scrollHeight = afterScroll;

                // 滚动距离页面底部200像素，延迟250毫秒加载
                clearTimeout(_this.time_Scroll);

                _this.time_Scroll = setTimeout(function () {

                    _this.prePageSCroll = afterScroll;
                    _this.storeSession();
                    _this.ShowGoTop(afterScroll);

                    if(oGoodsMall[0].scrollHeight - afterScroll - oScrollBox.height() < minScrHeight) {

                        // 设置翻页到最后一页 返回
                        if(!_this.bLoadOff) {
                            _this.dataJson = null;
                            return;
                        }

                        // 滚动底部页数增加 起始数据等于上次结束数据 新的结束等于页数*页码数
                        _this.start = _this.limit*_this.pagearr;
                        _this.pagearr++;
                        _this.AjaxData(_this.start, _this.limit, 1, oCouponId);
                    }
                },150);
            })
        },

        // 自动历史定位高度
        storeSession: function () {
            var _this = this;
            sessionStorage.setItem("sellerCoupon_pagearr", _this.pagearr);
            sessionStorage.setItem("sellerCoupon_pageScroll", _this.scrollHeight);
        },


        // 显示回到顶部按钮
        ShowGoTop: function (scrollTop) {
            scrollTop > 300 ? oSideBox.show().stop().animate({'right': 0}, 300) : oSideBox.hide().stop().animate({'right': '-3.5rem'}, 300);
        }
    }
});